import json

from selenium import webdriver
from selenium.webdriver.common.by import By


# 可以放在类里面  也可以放在类外面   放在类里面要创建一个对象之后才能调用这个方法
def get_msg():
    msg=UtilsDriver.get_driver().find_element(By.CSS_SELECTOR, ".layui-layer-content").text
    return msg

def get_case_data(filename):
    with open(filename, encoding='utf-8') as f:
        case_data = json.load(f)
    list_case_data = []
    for case in case_data:
        for x in case.values():  # values() 用来获取字典对象里面的键值
            case_tuple = x.values()
            list_case_data.append(tuple(case_tuple))
            # extend是把一个列表的成员追加到另一个列表的后面  append是在列表后面追加成员
            # 这里的一个成员是一个元组
            # 用extend返回的是一个['15837321721', '123456', '8888', '账号不存在', '15837321720', '', '8888', '密码不能为空']
            # 用append返回的是一个[('15837321721', '123456', '8888', '账号不存在'), ('15837321720', '', '8888', '密码不能为空')]
    return list_case_data
# get_case_data("case_data/login_case_data.json")


class UtilsDriver:
    _driver=None  #_driver是一个私有的属性  不被其他类调用

    # 定义一个获取浏览器驱动对象的方法
    @classmethod    # 表示这个方法是一个类级别的方法
    def get_driver(cls):
        if cls._driver is None: # 判断driver是否已创建，如果为None就需要去创建浏览器驱动对象，如果不为None，则直接返回driver
            cls._driver = webdriver.Chrome()
            cls._driver.maximize_window()
            cls._driver.implicitly_wait(10)
            cls._driver.get("http://localhost/")
        return cls._driver

    # 定义一个退出浏览器驱动对象的方法
    @classmethod
    def quit_driver(cls):
        if cls._driver is not None:
            cls._driver.quit()
            cls._driver=None

